package com.ruoyi.ldzlsb.service;

import com.ruoyi.ldzlsb.domain.SbEquipmentType;
import com.ruoyi.common.core.domain.UR;

import java.util.List;
import java.util.Map;

/**
 * 设备类型 服务层
 */
public interface SbEquipmentTypeService {
    
    /**
     * 查询设备类型列表
     * 
     * @param equipmentType 设备类型信息
     * @return 设备类型集合
     */
    List<SbEquipmentType> findEquipmentType(SbEquipmentType equipmentType);
    
    /**
     * 查询全部设备类型列表
     * 
     * @return 设备类型集合
     */
    List<SbEquipmentType> list();
    
    /**
     * 根据ID查询设备类型详情
     * 
     * @param id 设备类型ID
     * @return 设备类型信息
     */
    SbEquipmentType getById(Long id);
    
    /**
     * 新增设备类型
     * 
     * @param equipmentType 设备类型信息
     * @return 结果
     */
    boolean saveEquipmentType(SbEquipmentType equipmentType);
    
    /**
     * 修改设备类型
     * 
     * @param equipmentType 设备类型信息
     * @return 结果
     */
    boolean updateEquipmentType(SbEquipmentType equipmentType);
    
    /**
     * 删除设备类型
     * 
     * @param id 设备类型ID
     * @return 结果
     */
    boolean deleteEquipmentType(Long id);
    
    /**
     * 获取设备类型树结构
     * 
     * @return 设备类型树
     */
    List<Map<String, Object>> getTree();
    
    /**
     * 检查设备类型编码是否已存在
     * 
     * @param typeCode 设备类型编码
     * @return 结果 true表示存在，false表示不存在
     */
    boolean checkEquipmentTypeCode(String typeCode);
    
    /**
     * 生成设备类型编码
     * 
     * @return 结果
     */
    UR generateCode();
} 